package com.literaryfamily.literaryfamily.service.book;

import com.literaryfamily.literaryfamily.entity.Audit;
import com.literaryfamily.literaryfamily.entity.BookComments;
import com.literaryfamily.literaryfamily.myUtil.PageUtil;
import com.literaryfamily.literaryfamily.vo.BookCommentsList;

import java.util.List;

/**
 * 书籍评论接口
 * 所有涉及读写的方法都需要抛出 WriteError 数据库读写错误异常(这个是运行时异常,只需要抛出不需要处理)
 * 此接口所有方法均不检查用户身份,应该验证身份后在进行检查
 *
 * @author 滑稽/因果报应
 */
public interface BookCommentsService {
    /**
     * 添加和更新书籍订单评论,以包装类中的ID为准,如果重复时视为追加评论
     *
     * @param bookComments 完整的评论信息
     * @return 审核状态
     */
    Audit addComment(BookComments bookComments);

    /**
     * 根据ID删除评论
     *
     * @param CommentsId 评论ID
     * @return 被删除的评论信息
     */
    BookComments deleteComment(BookComments CommentsId);

    /**
     * 根据书籍获取评论,评论内容包括用户头像,用户名,ID(见包装类)
     *
     * @param bookId  评论ID
     * @param pageMsg 分页信息,为空时代表不进行分页,获取所有记录
     * @return 所有评论
     */
    List<BookCommentsList> getComment(Long bookId, PageUtil pageMsg);
}